package com.itheima.activiti3;


import org.activiti.engine.*;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 流程变量的测试
 */
public class VariableTest {

    //完成任务 zhangsan ---lisi---panduan流程变量的请假天数，1天 ----分支：人事经理存档
    public static void main(String[] args) {
        //1.创建ProcessEngine对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

        //2.得到TaskService实例
        TaskService taskService = processEngine.getTaskService();

        //3.查询当前用户的任务
        List<Task> list = taskService.createTaskQuery()
                .processDefinitionKey("holiday")
                .taskAssignee("zhaoliu")
                .list();
        //4.判断task！=null ，说明当前用户有任务
        if (list!=null){
            taskService.complete(list.get(0).getId());
            System.out.println("任务执行完毕");
        }
    }

    //启动流程实例，同时还要设置流程变量的值
//    public static void main(String[] args) {
//        //1.创建ProcessEngine对象
//        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//
//        //2.得到RuntimeService
//        RuntimeService runtimeService = processEngine.getRuntimeService();
//
//        //3.流程定义的key
//        String key = "holiday";
//        Map<String, Object> map = new HashMap<>();
//
//        Holiday holiday = new Holiday();
//        holiday.setNum(5f);
//        map.put("holiday",holiday);
//
//        //4.启动流程实例，并且设置流程变量的值
//        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key, map);
//
//        //5.输出实例信息
//        System.out.println(processInstance.getName());
//        System.out.println(processInstance.getProcessDefinitionId());
//
//    }



    //新的流程定义的部署
//    public static void main(String[] args) {
//        //1.创建ProcessEngine对象
//        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//
//        //2.得到RepositoryService实例
//        RepositoryService repositoryService = processEngine.getRepositoryService();
//
//        //3.进行部署
//        Deployment deploy = repositoryService.createDeployment()
//                .addClasspathResource("diagrams/holiday4.bpmn") //添加bpmn资源
//                .addClasspathResource("diagrams/holiday4.png") //添加png资源
//                .name("请假流程-流程变量")
//                .deploy();
//
//        //4.输出部署的一些信息
//        System.out.println(deploy.getId());
//        System.out.println(deploy.getName());
//    }
}
